Conventional graphics processors are exemplified by systems and methods developed to read and filter texture map samples. Traditionally when a video image is used as a texture map it is first resampled to produce an “n×m” dimension texture map where n and m are each a power of two. Specifically, an “n” or “m” that is a power of two may be expressed as n=2i or m=2i, respectively, where i is an integer. Furthermore, to simplify the texture map filtering performed within a graphics processor, the n×m dimension texture map is filtered and various resolutions of the filtered texture are stored as mip mapped texture maps.
FIG. 1A is a conceptual diagram of prior art showing a mip mapped texture including a highest resolution texture map, such as the n×m dimension texture map Texture Map 101. A Texture Map 102, a Texture Map 103, and a Texture Map 104 are successively lower resolution texture maps, mip maps, each storing filtered texels. Each mip map level texture map dimension is half the size of the previous (finer) mip map level texture map dimension, but not less than one. Traditionally texture map dimensions are powers of two in order to simplify computations used to convert from normalized texture coordinates to unnormalized texture coordinates. The unnormalized texture coordinates are then used to read texture map samples from memory. Power of two texture maps are also used to simplify computations used to support the wrap modes shown in FIGS. 1B and 1C. FIG. 1B illustrates a texture map applied to a square surface using a “repeat” wrap mode. FIG. 1C illustrates a texture map applied using a “mirror” wrap mode.
Accordingly, there is a need to use a video image as a texture map without resampling the video image to generate a power of two texture map. Furthermore, there is a need to apply a video image or other non-power of two texture map to a surface using a repeat or mirror wrap mode.